/**
* \file		Prerequis.h
* \brief	Définit la structure Prerequis
* \details	C'est ici que sont définis la structure Prerequis, ses
*		accesseurs, ses mutateurs.
*/
#ifndef PREREQUIS_H
#define PREREQUIS_H

/**
* \brief	Informations définissant un Prerequis de Technologie.
* \details	Cette structure comporte l'ID de la technologie prérequise et
*		un caractère faisant office de booléen indiquant si oui ou non
*		la technologie en question a été développée.
*/

typedef struct
{
   int IDTech;			/*!<ID d'une technologie */
   char dev;			/*!<"booléen" indiquant si la technologie
				prérequise a été développée. Initialisée à 0,
				passe à 1 quand développée */
} Prerequis;

/*======================= Gestion de la mémoire ========================*/
/**
* \brief	Initialise une structure Prerequis
* \details	Met dev et IDTech à 0
* \param	pprer		Pointeur vers le Prerequis à initialiser
*/
void initPrer(Prerequis *pprer);

/*============================= Accesseurs =============================*/
/**
* \brief	Retourne l'ID stockée dans un Prerequis donné
* \return	Un entier
* \param	pprer		Pointeur vers un Prerequis
*/
int getIDPrer(const Prerequis *pprer);

/**
* \brief	Retourne la valeur de dev d'un Prerequis donné
* \return	Un caractère
* \param	pprer		Pointeur vers un Prerequis
*/
char getDevPrer(const Prerequis *pprer);

/*============================== Mutateurs =============================*/
/**
* \brief	Remplace l'ID stockée dans un prérequis donné par la valeur
*		passée en paramètre
* \param	pprer		Pointeur vers un Prerequis
* \param	nouvVal		Nouvelle valeur
*/
void setIDPrer(Prerequis *pprer, int nouvVal);

/**
* \brief	Remplace la valeur dev d'un prérequis donné par la valeur
*		passée en paramètre
* \param	pprer		Pointeur vers un Prerequis
* \param	nouvVal		Nouvelle valeur
*/
void setDevPrer(Prerequis *pprer, int nouvVal);



#endif
